Various distributed software architectures are known prior art, e.g., “The HAVi Specification, Specification of the Home Audio/Video Interoperability (HAVi) Architecture”, HAVi Specification 1.0, HAVi Organization, Jan. 18, 2000, discloses a distributed software architecture for implementing in so-called consumer electronics (CE) units and computers, such as, for example, so-called personal digital assistants and other electronic units which have a computer. The HAVi includes services which simplify the interoperability and the development of distributed applications in in-house networks. One example application of the HAVi architecture relates to CE units which are in accordance with IEEE 1394 and/or IEC 61883 interface standards.
In the distributed software architecture according to the HAVi industry standard, control of the individual units takes place via control modules, so-called device control modules (DCM). In the case of a DCM, an HAVi software element is involved, which makes available an interface for controlling the unctions of a particular unit. Thus, each DCM is specific to a particular device or a particular device class.
FIG. 1 shows an example of HAVi software elements which form an intervening layer between platform-specific application programming interfaces (API) and platform-independent applications. The example of FIG. 1 is disclosed in, e.g., “HAVi, The A/V Digital Network Revolution”, HAVi Organization, 1999 (http://www.HAVi.org).
The distributed software architecture is implemented between a platform-specific API 1 and an interoperability-API 2. Below platform-specific API 1, there is a manufacturer-dependent platform 3; above interoperability API 2 are applications 4, as well as so-called “havlets” 5. In the case of a havlet, a HAVi Java application is involved which is loaded by a DCM or an application module, upon the query of a control unit.
The actual HAVi components can be addressed as software elements, as individual modules in the system. In this context, the software elements may in general be positioned centrally, as well as in distributed fashion, i.e., an implementation having only one entity of a certain software element, as well as an implementation which provides for such an entity in each unit, are possible. Going into details, the system contains the following software elements:
Stream manager 6 is used to set up, disconnect and manage links between software elements or devices. The stream manager may, just as may a registry, be set up as a distributed system. In this context, special commands can be used to query the state of all the stream managers or a particular stream manager.
Event manager 7 transports messages regarding state changes in the system to the communications participants.
Registry 8 contains information on each software element available in the network and each available device. In this context, data on the individual software elements is stored in attributes. In addition to the predefined attributes, it is possible to add further ones. The architecture of the registry permits a distribution in the system, i.e. each device may include a part of the entire registry, but it may also be supported centrally. This is invisible for access to the registry, since, if the occasion arises, the various entities of the registry independently exchange the required information inside the network.
Resource Manager 9 carries out the occupation and release of resources—i.e. units and software elements—and stores planned procedures, such as video recorder takes.
DCM Manager 10 is responsible for the instalment and deinstalment of DCMs in appropriately suitable devices. In this context, a standardized method for installing DCMs in Java-byte code format is available. An installation of native code (binary) is not described in the HAVi standard, but may be added as a proprietary solution.
Device Control Module (DCM) 11 is a software element which brings together one or more functional control modules (FCM) to a device driver.
Functional Control Module (FCM) is a software element by which a functional unit of a device, (e.g. a CD drive or a UKW tuner) is controlled. In this context, a DCM is formed from the basic functions and device-specific FCMs that are common to all DCMs.
These distributed modules, or, in a certain device, implemented modules, form a uniform interoperability API 2. By this uniform interface, an interoperability is achieved between applications 4 and the devices of various manufacturers.
The HAVi software architecture also includes a messaging system 12, which is used for the exchange of messages between the various HAVi software elements. Communications media manager 13 permits other devices or software elements to execute asynchronous or isochronous communications via the network. For example, communications media manager 13 runs according to the IEEE 1394 standard.